#!/bin/bash

# 部署脚本：一键构建并启动项目，然后跟随日志
echo "开始构建并启动 Docker 容器..."
docker compose up -d --build

if [ $? -ne 0 ]; then
    echo "容器启动失败，请检查错误信息。"
    exit 1
fi

echo "等待 MySQL 容器启动完成..."
# 等待 MySQL 健康检查通过（最多等待60秒）
for i in {1..60}; do
    STATUS=$(docker inspect --format='{{.State.Health.Status}}' mysql_db 2>/dev/null)
    if [ "$STATUS" == "healthy" ]; then
        echo "MySQL 容器已就绪"
        break
    fi
    sleep 1
done

if [ "$STATUS" != "healthy" ]; then
    echo "MySQL 容器未能在预期时间内就绪，请检查容器状态。"
    exit 1
fi

echo "导入 init.sql 数据库脚本..."
# 通过管道导入 SQL，避免密码交互问题
cat init.sql | docker exec -i mysql_db mysql -uroot -proot letao_mall

if [ $? -eq 0 ]; then
    echo "数据库初始化完成！"
else
    echo "数据库初始化失败，请检查 init.sql 和 MySQL 配置。"
    exit 1
fi

echo "容器启动成功，正在跟随 Spring 应用日志..."
docker logs -f spring_app
